class Factorial {
    public static void main() {
        temp tem ;//= new temp();
        Fac f;
        int t ;
        t = f.ComputeFac(1);
        
        //t = tem.ComputeFac(1); //Wrong
        
        System.out.println(new Fac().ComputeFac(10));
    }
}

class Fac {
	int[] a ;
	long b;
public int ComputeFac(int num) {
    pre: num > 0;
    post: num_aux>0;
        int num_aux;
        a = new int[2];
        a[0] = 1;
        a[1] = 2;
        if (num > 1){
            num_aux = num * (this.ComputeFac(num-1));
        }
        else {
            num_aux = 1;
        }
        while(true){ ////
            num_aux = num_aux+1;
        }
        return num_aux;
    }
}

class temp extends Fac{
	long kk;
public long ComputeFac(int num) {
        pre: num > 0;
    post: 1>0;
    
    return 1;
    }
}
